import 'dart:io';
import 'package:cbec_app/utils/cache_mgr.dart';
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../pages/my/controller/statement_ctr.dart';
import '../../routes/routes.dart';
import '../../utils/AppData.dart';
import '../../utils/Tools.dart';

class PrivacyAgreementDialog {
  static void show(
    BuildContext context,
    String title,
    bool useRootNavigator,
    VoidCallback callBack,
  ) {
    showDialog(
      context: context,
      barrierDismissible: false, // 点击外部区域关闭弹窗
      useRootNavigator: true, // 使用根导航器
      barrierColor: Tools.fromHex('#646464'),
      builder: (context) {
        return Dialog(
          backgroundColor: Colors.white,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(12), // 弹窗的圆角
          ),
          child: LayoutBuilder(builder: (context, constraints) {
            return Column(
              mainAxisSize: MainAxisSize.min, // 使弹窗自适应内容大小
              children: [
                // 标题
                Padding(
                  padding: const EdgeInsets.all(10.0),
                  child: Text(
                    title,
                    style: const TextStyle(
                      fontSize: 18,
                      fontWeight: FontWeight.normal,
                    ),
                  ),
                ),
                // 可滚动的文本内容
                Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 16.0),
                  child: ConstrainedBox(
                    constraints: BoxConstraints(
                      maxHeight: ScreenUtil().screenHeight * 0.5, // 设置最大高度为屏幕高度的50%
                    ),
                    child: SingleChildScrollView(
                      child: RichText(
                        text: TextSpan(
                          text: '感谢您对百大易购的信任！我们非常重视用户个人信息保护，将严格按照最新监管要求保护您的个人信息，您点击“同意“代表您已阅读并同意',
                          style: const TextStyle(fontSize: 14, color: Colors.black),
                          children: [
                            TextSpan(
                              text: '《百大易购用户协议》',
                              style: TextStyle(
                                fontSize: 14,
                                color: Tools.fromHex('#d63d29'),
                                decoration: TextDecoration.none,
                              ),
                              recognizer: TapGestureRecognizer()
                                ..onTap = () {
                                  Get.toNamed(Routes.statement, arguments: RichTextLinkType.serviceTerm);
                                },
                            ),
                            const TextSpan(
                              text: '和',
                              style: TextStyle(fontSize: 14, color: Colors.black),
                            ),
                            TextSpan(
                              text: '《百大易购隐私政策》',
                              style: TextStyle(
                                fontSize: 14,
                                color: Tools.fromHex('#d63d29'),
                                decoration: TextDecoration.none,
                              ),
                              recognizer: TapGestureRecognizer()
                                ..onTap = () {
                                  // 跳转到《百大易购隐私政策》
                                  Get.toNamed(Routes.statement, arguments: RichTextLinkType.privacyPolicy);
                                },
                            ),
                            const TextSpan(
                              text:
                                  '的全部内容。同时我们在此特别向您说明如下：\n1、为了帮助您发现更多优质内容，会根据您的使用习惯做内容推荐；\n2、为了更好地体验部分功能，您可以选择开启所需的权限您可以在《隐私政策》中了解到此权限的详细应用说明，您有权拒绝或取消授权；\n3、我们会采取业界先进的安全措施保护您的信息安全；\n4、未经您的同意，我们不会从第三方处获取、共享或向其提供您的个人信息；\n5、您可以查询更正，删除您的个人信息，我们也提供账户注销渠道。更多详情，敬请查阅;\n6、本应用集成了极光推送服务，用于向您发送通知或消息。为了提供更精准的推送服务，极光推送可能会收集您的设备标识符、网络相关信息及应用使用情况。这些信息仅用于消息推送功能，不会用于其他目的,设备参数及系统信息(设备类型、设备型号、系统版本、及相关硬件信息)：用于识别用户的设备类型、设备型号、系统版本等，确保消息准确下发；设备标识符（IMEI、IDFA、Android ID、GID、 MAC、OAID、VAID、AAID、IMSI、MEID、UAID、SN、ICCID、SIM信息）：用于识别唯一用户，保证推送的精准送达及推送信息的准确统计。\n7.我们的产品集成友盟+SDK，友盟+SDK需要收集您的设备Mac地址、唯一设备识别码（IMEI/android ID/IDFA/OPENUDID/GUID/IP地址/SIM 卡 IMSI 信息）以提供统计分析服务，并通过地理位置校准报表数据准确性，提供基础反作弊能力。',
                              style: TextStyle(fontSize: 14, color: Colors.black),
                            ),
                            TextSpan(
                              text: '《百大易购用户协议》',
                              style: TextStyle(
                                fontSize: 14,
                                color: Tools.fromHex('#d63d29'),
                                decoration: TextDecoration.none,
                              ),
                              recognizer: TapGestureRecognizer()
                                ..onTap = () {
                                  Get.toNamed(Routes.statement, arguments: RichTextLinkType.serviceTerm);
                                },
                            ),
                            const TextSpan(
                              text: '和',
                              style: TextStyle(fontSize: 14, color: Colors.black),
                            ),
                            TextSpan(
                              text: '《百大易购隐私政策》',
                              style: TextStyle(
                                fontSize: 14,
                                color: Tools.fromHex('#d63d29'),
                                decoration: TextDecoration.none,
                              ),
                              recognizer: TapGestureRecognizer()
                                ..onTap = () {
                                  // 跳转到《百大易购隐私政策》
                                  Get.toNamed(Routes.statement, arguments: RichTextLinkType.privacyPolicy);
                                },
                            ),
                            const TextSpan(
                              text: '全文。',
                              style: TextStyle(fontSize: 14, color: Colors.black),
                            ),
                          ],
                        ),
                      ),
                    ),
                  ),
                ),
                // 横向分隔线
                Divider(
                  color: Tools.fromHex('#e0e0e0'),
                  thickness: 1,
                ),
                // 底部按钮
                Container(
                  margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 50),
                  child: Row(
                    mainAxisSize: MainAxisSize.max,
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      // 左侧按钮
                      Expanded(
                        child: TextButton(
                          onPressed: () {
                            Navigator.of(context).pop();
                            exit(0);
                          },
                          style: TextButton.styleFrom(
                            foregroundColor: Colors.red,
                            padding: const EdgeInsets.symmetric(vertical: 10), // 按钮内边距
                            side: BorderSide(color: Tools.fromHex('#d9d9d9')),
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(5), // 设置圆角
                            ),
                          ),
                          child: Text(
                            '不同意',
                            style: TextStyle(color: Tools.fromHex('#333333')),
                          ),
                        ),
                      ),
                      const SizedBox(width: 40), // 间距
                      // 右侧按钮
                      Expanded(
                        child: TextButton(
                          onPressed: () {
                            AppData.isHaveAgree = true;

                            Navigator.of(context).pop();
                            callBack();
                          },
                          style: TextButton.styleFrom(
                            foregroundColor: Colors.white,
                            backgroundColor: Colors.red, // 白色字体
                            padding: const EdgeInsets.symmetric(vertical: 10), // 按钮内边距
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(5), // 设置圆角
                            ),
                          ),
                          child: const Text('同意'),
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            );
          }),
        );
      },
    );
  }
}
